package auftrag;

import java.util.HashMap;
import java.util.Map.Entry;

public class Auftrag {
	
	private int mDueDate;
	private String mName;
	private HashMap<Produkt, Integer> mProducts = new HashMap<Produkt, Integer>();
	
	public Auftrag(String pName, int d){
		mName = pName;
		mDueDate = d;
	}

	public void addProduct(Produkt p, int n){
		if(p != null && n > 0)
			mProducts.put(p, n);
	}
	
	public int getDueDate(){
		return mDueDate;
	}
	
	public int getLateness(int time){
		return time-mDueDate;
	}
	
	@Override
	public String toString(){
		return mName;
	}
	
	public void print(){
		System.out.println("Auftrag: "+this);
		for(Entry<Produkt, Integer> e : mProducts.entrySet()){
			System.out.println("\t"+"Produkt: "+e.getKey()+", "+e.getValue());
			for(Variante v : e.getKey().getVarianten()){
				System.out.println("\t\t"+"Variante: "+v);
				Operation o = v.getNextOperation();
				while(o != null){
					System.out.println("\t\t\t"+"Operation: "+o);
					for(Entry<Resource, Integer> e1 : o.getResources().entrySet()){
						System.out.println("\t\t\t\t"+"Resource: "+e1.getKey()+", "+e1.getValue());
					}
					o = v.getNextOperation();
				}
			}
		}
		
	}
}
